home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / Projects / Questions & Answers / Q&A Programming Music / Programming arpeggiators < prev    next >
Lisp/Scheme  |  1998-10-26  |  3KB  |  83 lines

  1. PROGRAMMING ARPEGGIATORS
  2.  
  3. >Hi, Im just getting my teeth into Symbolic Composer. I would like to set
  4. >up a program that plays variations of an arpeggiated one instrument
  5. >solo, (to sound a bit like the band Tangerine Dream). I want it to
  6. >create a long line of arpeggiated variations that I can put into
  7. >performer and link all the ones that sound good up. Any ideas?
  8.  
  9. Harmony theory functions and overtone tonalities have suitable properties.
  10. Here is a simple sequencer. Use different lengths in symbols and velocities,
  11. Klaus Schulze has been know of his techniques of maximizing the possibilities
  12. of 16 beat sequencers by using multiple such sequencers synced to each
  13. other and then setting the limit of the sequence differently. When melody
  14. uses 16 elements and velocity only 15 then it will take 16x15 until the
  15. total resulting sequence will repeat. When you define a synth setup
  16. you can also use filter and other synth-specific controllers. 
  17.  
  18. ;"The Arpeggiator" by Claudio Martini.
  19.  
  20. ;This is a multiple arpeggiator for more instruments (six in this case).
  21. ;by substituting symbols, tonalities and other parameters you can easily adapt it 
  22. ;to your demands.
  23.  
  24.  
  25.  
  26. (setq symbols '(a b c d e f g h 
  27.                 l i n m p o r q
  28.                 s q r o p m n i 
  29.                 l h g f e d c b))
  30.  
  31. (def-symbol
  32.     kalimba     symbols
  33.     vibes       symbols
  34.     synth       symbols 
  35.     el.piano    symbols
  36.     harp        symbols
  37.     marimba     symbols)
  38.  
  39. (def-length
  40.     default '1/32)
  41.  
  42. (def-velocity
  43.    default '(40 45 50 55 60 65 70 75 70 65 60 55 50 45 40))
  44.  
  45. (def-tempo 105)
  46.  
  47. (def-channel
  48.     kalimba      2
  49.     vibes        3
  50.     synth        12
  51.     el.piano     13
  52.     harp         9
  53.     marimba      16
  54. )
  55.  
  56. (def-program nil
  57.     kalimba      53
  58.     vibes        37
  59.     synth        16
  60.     el.piano     50
  61.     harp         39
  62.     marimba      46
  63. )
  64.  
  65. (setq tonals (activate-tonality (pentatonic c 5)  (hirajoshi g 5) 
  66.                                 (pelog c 5)       (messiaen1 c 5)
  67.                                 (overtone c 6)    (harmonic-minor c 5)
  68.                                 (messiaen2 c 5)   (enigmatic c 6)
  69.                                 (lydian f 5)      (phrygian e 5)
  70.                                 (mixolydian b& 4) (lydian d& 5)))
  71.  
  72. (compile-song-p "ccl;output:" 1/1 "Arpeggiator"
  73. ;   BARS                   |---|---|---|---|---|---|---|---|---|---|---|---|
  74.     changes      tonals   "  . . . . . . . . . . . . . . . . . . . . . . . "
  75.     kalimba      changes  "--- --- --- --- --- --- --- --- --- --- --- --- "
  76.     vibes        changes  " --- --- --- --- --- --- --- --- --- --- --- ---"
  77.     synth        changes  "- --- --- --- --- --- --- --- --- --- --- --- --"
  78.     el.piano     changes  "-- --- --- --- --- --- --- --- --- --- --- --- -"
  79.     harp         changes  "--- --- --- --- --- --- --- --- --- --- --- --- "
  80.     marimba      changes  " --- --- --- --- --- --- --- --- --- --- --- ---"
  81. )
  82.  
  83.